Creo que lo siguiente lo hará por usted, aunque no lo he probado. El truco consiste en obtener los recuentos de propiedades en una tabla y luego unir esa tabla a la tabla de ciudades a la izquierda, convirtiendo NULL en 0 usando IFNULL función.
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);