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