En règle générale, j'ai passé 3 heures dessus, puis JUSTE après avoir posté la question, je trouve le problème. Donc, pour référence future :il semble que MySQL soit insensible à la casse en ce qui concerne les variables. L'ID
nom de la colonne et id
variable apparemment complètement confondue.
J'ai changé le nom du paramètre d'entrée de la procédure en retId
puis ça a parfaitement fonctionné.