Ho aperto MySQL e ho dato il seguente comando SQL sulla tablella accessi che contiene il campo data_inizio come datetime:

SELECT TIME_FORMAT(TIMEDIFF("2007-04-05 22:00:00", data_inizio), '%H') as ore
FROM accessi

e tutto va bene

Prova anke tu ad aprire mysql-gui o phpMyAdmin o altro tools che usi per gestire il DB e prova ad eseguire la query:

SELECT TIME_FORMAT(TIME_DIFF(".$data_di_oggi.",utenti.Dat a_Iscrizione),%H) AS ore FROM utenti WHERE utenti.UserName='".$_SESSION['username']."'")) or die("Impossibile prendere le ore".mysql_error());

SELECT TIME_FORMAT(TIMEDIFF("2007-04-05 22:00:00", Data_Iscrizione), '%H') as ore
FROM utenti WHERE UserName="TUO_USERNAME")

Se non ti da errore allora hai sbagliato qualcosa nell'impostare la query con il php.
Fammi sapere