Os procedimentos armazenados do MySQL podem retornar vários conjuntos de resultados , onde o último conjunto de resultados são os dados reais nos quais você está interessado. Uma das poucas coisas que o mysqli faz corretamente é suportar vários conjuntos de resultados.
Tente verificar
mysqli::more_results
. Verifique também as isenções de responsabilidade na página de manual para mysqli::store_result
sobre como o mysqli lida com vários conjuntos de resultados em que um pode não ter dados. Você acabará trabalhando com o mysqli_result
classe em vez de mysqli_stmt
.