If you have only row that fullfills the WHERE clause, you should use query_first instead of query_read (and not 'query' like LV suggested :P 'query' is depreciated and should be replaced by either query_read or query_write).
The 'read' in query_read only means that this query will not change any data (query_write), it is not fetching the results.
If you have more rows that will be returned, use the following construct:
PHP Code:
$result= $vbulletin->db->query_read("SELECT * FROM table WHERE condition");
while ($row= $vbulletin->db->fetch_array($result))
{
...process row
}