Deviner. Ce n'est pas un bogue avec PHP (bien qu'il l'ait été) - c'est un bogue dans certaines versions de phpmyadmin. Le même bogue réapparaît par intermittence et est ensuite corrigé dans diverses sous-versions (voir ci-dessus) :
#1312 - PROCEDURE [name] can't return a result set in the given context
Ce comportement semble limité aux instructions SELECT dans les procédures stockées à l'intérieur de phpmyadmin .
L'utilisation d'un client comme MySQL Workbench permet de contourner le problème (ou vous pouvez mettre à jour phpmyadmin, mais c'est pénible si vous êtes sur un serveur partagé comme moi).
Quoi qu'il en soit, merci à tous pour votre aide.