Důvod, proč vrací nula řádků, je ten, že seskupujete podle hodnoty v tabulce_1. Vzhledem k tomu, že tabulka_1 neobsahuje žádné hodnoty, nejsou zde žádné řádky, které by bylo možné vrátit. Řečeno jinak, pokud jste ve svém dotazu ze skupiny GROUP BY vrátili t1.any_col takto:
SELECT `t1`.`any_col`, COUNT(`t2`.`name`)
FROM `table_1` `t1`
LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id`
WHERE `t1`.`another_column` = 123
GROUP BY `t1`.`any_col`
Co by se zobrazilo pro t1.any_col, když nebyly žádné řádky? Jediný způsob, jak dosáhnout toho, co chcete, je sjednotit vaše výsledky s jiným dotazem, který nekontroluje žádné řádky v table_1. V tomto příkladu používám zobrazení INFORMATION_SCHEMA jednoduše proto, abych měl něco, na co se mohu dotazovat.
SELECT COUNT(`t2`.`name`)
FROM `table_1` `t1`
LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id`
WHERE `t1`.`another_column` = 123
GROUP BY `t1`.`any_col`
UNION ALL
SELECT 0
FROM INFORMATION_SCHEMA.TABLES
Where Not Exists( Select 1 From `table_1` )
LIMIT 1