Fandt ud af det. Dette er ikke en fejl med PHP (selvom det plejede at være det) - det er en fejl i nogle versioner af phpmyadmin. Den samme fejl dukker med mellemrum op igen og bliver derefter rettet i forskellige underversioner (se ovenfor):
#1312 - PROCEDURE [name] can't return a result set in the given context
Denne adfærd ser ud til at være begrænset til SELECT-sætninger i lagrede procedurer i phpmyadmin .
Brug af en klient som MySQL Workbench løser problemet (eller du kan opgradere phpmyadmin, men det er en smerte, hvis du er på en delt server, som jeg er).
Uanset hvad, tak til alle for jeres hjælp.