Tänkte ut det. Det här är inte en bugg med PHP (fast det brukade vara det) - det är en bugg i vissa versioner av phpmyadmin. Samma bugg dyker upp periodvis igen och fixas sedan i olika subversioner (se ovan):
#1312 - PROCEDURE [name] can't return a result set in the given context
Det här beteendet verkar begränsat till SELECT-satser i lagrade procedurer i phpmyadmin .
Att använda en klient som MySQL Workbench löser problemet (eller så kan du uppgradera phpmyadmin, men det är jobbigt om du är på en delad server som jag är).
Hur som helst, tack till alla för er hjälp.