Dado que desea valores cero para sus filas no coincidentes, es un trabajo para LEFT JOIN
, como:
SELECT
t1.*,
IF(t2.`key` IS NULL, 0, COUNT(t1.`key`)) AS t2_row_count
FROM
t1
LEFT JOIN t2
ON t1.id=t2.id
AND
t1.category=t2.category
GROUP BY
t1.`key`
Estamos contando t1.key
porque para filas coincidentes serán iguales en primero tabla (y no la segunda) - por lo tanto, debemos agrupar por ella - y no por campo en la segunda tabla.
Consejo :evite nombrar sus tablas/columnas con palabras reservadas de mysql. Esto te ahorrará mucho tiempo si accidentalmente olvidas los acentos graves.