Comience con la depuración de su resultado real de la base de datos.
if (isset($_REQUEST['customer_id'])) {
$id = intval($_REQUEST['customer_id']);
$query = "SELECT * FROM customers WHERE customer_id=:id";
$stmt = $pdo->prepare( $query );
$stmt->execute(array(':id'=>$id));
$row=$stmt->setFetchMode(PDO::FETCH_ASSOC);
NO está buscando errores.
Dos sugerencias:
1) Estás usando <?php echo $row['first_name'];?>
. Si inspeccionaste el conjunto de resultados, podrías ver qué tiene de malo. Simplemente emita el resultado en la variable $row (nombrada incorrectamente) con print_r() y similares. Estoy seguro de que verá lo que salió mal.
2) Recomiendo encarecidamente NO usar $_REQUEST. Es perezoso y propenso a errores. ¿Sabes de dónde viene el 'customer_id'? ¿Sesión? ¿Galleta? ¿CORREO? O conseguir? Si está pasando información a través de GET => use GET