Die ganze Abfrage kann so wohl nicht hinkommen.

Da man ja unterscheiden muss, ist der Status unbegrenzt, oder liegt er in einem gewissen Zeitrahmen.

Führ doch mal das in PHPMyAdmin aus:
Code:
SELECT t2.name AS upgrade, t1.gueltig_bis AS gueltig, t1.unbegrenzt AS unbegrenzt 
                FROM vms_goldmember t1
                LEFT JOIN vms_goldbonus t2 ON t2.id=t1.bonus 
                WHERE t1.uid=USERIDXYZ
Vermutlich bekommst du dann für deinen Testuser mehrere Zeilen?
Aktuell wird davon genau eine gewählt, nämlich die (erste) bei dem der Bonus anhand gueltig_bis noch gültig ist. Müsste man jetzt wissen, was da drin steht, wenn der Bonus aber unbegrenzt ist, und dementsprechend mit OR das Verbinden.