Acho que o seguinte fará isso por você, embora eu não tenha testado. O truque é obter as contagens de propriedades em uma tabela e, em seguida, juntar essa tabela à tabela de cidades, convertendo NULLs em 0s usando o IFNULL função.
SELECT city_name, IFNULL(property_count, 0)
FROM cities
LEFT JOIN
(SELECT id_city, count(*) as property_count
FROM properties
GROUP BY id_city) city_properties
USING (id_city);