Ok, então eu percebi isso. O Mysql não era o problema, como suspeitava inicialmente. O script php que é executado retorna um arquivo xml e eu estava usando o firefox para executar o aplicativo da web que executa esse script por meio de uma solicitação de ajax. Acontece que o firefox parece ter um bug que envia vários pedidos de ajax quando está lidando com arquivos xml, o que fazia com que o banco de dados fosse atualizado e, quando a segunda requisição chegou, o resultado era nulo (a atualização renderia os resultados da consulta como null ). Eu consertei isso certificando-me de que cada solicitação seja única.
Obrigado pela ajuda a todos!