Bien, observando un poco mejor tu problema la cosa es simplísima: Estás usando el mismo nombre para el campo de la tabla, que para la variable de entrada... Eso está mal.
El parser de MySQL analiza jerárquicamente las cosas, y como una columna tiene más jerarquía que una variable local, interpreta que el segundo elemento de la comparación es también el campo (MySQL no diferencia entre mayúsculas y minúsculas en el cuerpo de un SF o SP).
En otras palabras, tu consulta le está diciendo a MySQL que devuelva el valor de DES_EMAIL, donde la clave primaria
sea igual a sí misma... O sea, te está devolviendo TODA la tabla.
¿Se entiende?
La solución es:
Ponle a la variable otro nombre.
Código MySQL:
Ver originalDELIMITER $$
RETURN salida;
DELIMITER ;