Разбрах го. Това не е грешка в PHP (въпреки че беше преди) - това е грешка в някои версии на phpmyadmin. Същият бъг периодично се появява отново и след това се коригира в различни субверсии (вижте по-горе):
#1312 - PROCEDURE [name] can't return a result set in the given context
Това поведение изглежда ограничено до изрази SELECT в рамките на съхранените процедури в phpmyadmin .
Използването на клиент като MySQL Workbench заобикаля проблема (или бихте могли да надстроите phpmyadmin, но това е болка, ако сте на споделен сървър като мен).
Както и да е, благодаря на всички за помощта.