I don't see why it wouldn't work. Unless the query isn't returning anything.
I tested it on a test site using a member list query. That was the only difference.
Code:
$ref = array();
$refkey = 0;
$referrals = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "user");
while ($referral = $vbulletin->db->fetch_array($referrals)) {
$ref[$refkey]['userid'] = $referral[userid];
$ref[$refkey]['username'] = $referral[username];
$refkey++;
}
$templater = vB_Template::create('referrals');
$templater->register('referrals', $ref);
print_output($templater->render());