Normalmente, passava 3 horas nisso e, APENAS depois de postar a pergunta, encontrei o problema. Então, para referência futura:Parece que o MySQL não faz distinção entre maiúsculas e minúsculas no que diz respeito às variáveis. O
ID nome da coluna e id variável aparentemente confundiu completamente. Alterei o nome do parâmetro de entrada do procedimento para
retId e então funcionou perfeitamente.