Questo dovrebbe funzionare per te:
SELECT `t1`.`id` , COUNT(`t2`.`id`) AS `count`
FROM `t1` LEFT JOIN `t2` ON `t1`.`id` = `t2`.`id`
GROUP BY `t1`.`id`
L'unione a sinistra assicura di avere tutte le righe da t1 e COUNT(t2
.id
) fa contare solo i record in cui t2.id non è nullo (cioè quelli che esistono realmente in t2)