Hay al menos dos cosas que considerar:
1) Las comillas (") no funcionan en cadenas de texto en todas las instalaciones de MySQL, a menos que se modifique la configuración del servidor.
2) Las variables OUT pueden no funcionar bien si la librería usada en programación no se utiliza adecuadamente. Podrías no recuperar los datos.
En cualquier caso, o te recomiendo probarlo así:
Código MySQL:
Ver originalDELIMITER $$
SET @consulta
= CONCAT ('SELECT id_direccion CODIGO, id_cliente NIT, pais PAIS FROM direccion_cliente WHERE id_direccion=',id);
PREPARE ejecutar
FROM @consulta
; EXECUTE ejecutar;
DELIMITER ;
Considerando que eso devolverá simplemente un registro, puedes leer el resultado sin necesidad de usar parametros OUT.
Además, como los lenguajes no te permiten ejecutar consultas sin seleccionar la base, poner la base en la consulta es innecesario (y contraproducente), así como tampoco tiene sentido indicar la tabla en los campos, si estás consultando
sólo una tabla.