Eurekaaaaaa, ho capito l'errore..... la join non puntava all'ID ma al campo testuale
codice:SELECT q.tipo_attivita AS 'Attività',SUM(TIMESTAMPDIFF(HOUR, data_e, data_u)) AS 'Time' FROM timbrature s JOIN cat_timbratura q ON s.tipo_attivita=q.id WHERE DATE(data_e) > (NOW() - INTERVAL 7 DAY) AND data_u IS NOT NULL GROUP BY s.tipo_attivita