perche' mysql_query rende false solo in caso di errore. Zero result set non e' un errore.

Se vuoi controllare se ci sono dati dovresti contare le righe disponibili nel result set.

Codice PHP:
$risultati mysql_query($q);
if(
mysql_num_rows($risultati) > 0) {
$returnresultset mysql_fetch_array($risultatiMYSQL_ASSOC);
$returnresultset['ok'] = true;
}else{
$returnresultset['ok'] = false;
}; 
se il risultato atteso "deve" essere 1 e solo 1, allora sostituisci > 0 con == 1