GROUP BY
regroupe les résultats , pas les lignes du tableau individuellement.
D'après votre commentaire, ne renvoie que les lignes de l'horaire qui ne sont pas liées à l'une de ces balises :
SELECT
date_format(from_unixtime(date), '%Y-%m-%d') as myDate,
ROUND(SUM(time) / 60,1) as hours
FROM `time` h
LEFT JOIN (
SELECT DISTINCT te.entity_id
FROM tag_entity te
LEFT JOIN tags t on t.tag_id = te.tag_id
WHERE te.entity_id IS NOT NULL AND t.tag_name IN ('foo', 'bar', 'baz')
) g ON h.entity_id = g.entity_id
WHERE g.entity_id IS NULL
group by
myDate
order by
hours DESC, myDate ASC