Myślę, że poniższe zrobią to za Ciebie, chociaż nie testowałem tego. Sztuczka polega na tym, aby zliczyć wartości właściwości w jednej tabeli, a następnie z lewej strony dołączyć tę tabelę do tabeli miast, konwertując wartości NULL na zera za pomocą IFNULL funkcja.
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);