se hai piu' campi con lo stesso nome e non utilizzi l'alias per il nome campo succede che l'ultimo con lo stesso nome sovrascrive i precedenti. Nel tuo caso TUTTI i record di utenti verranno estratti mentre invece per i record delle altre tabelle solo quelli che rispondono alla relazione (username) verranno utilizzati e per quelli mancanti verra' reso NULL.

Siccome i campi legati alla tabella utenti vengono richiesti per primi ecco che in caso di NULL di verra' azzerato il contenuto del campo con lo stesso nome.

Prova a fare:

$result=mysql_query("SELECT *, utenti.username
from....

in questo modo dovresti sovrascrivere i risultati del campo username delle tabelle in left join con quelli della tabella utenti