Pokud je to procedura, kterou píšete, měli byste zkusit:
BEGIN
IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
SELECT * FROM tbl_cities;
END IF
END
Pokud se jedná o dotaz, BEGIN
a END
tady nemají co dělat.
Upravit
No, ve skutečnosti není víc co říct, IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN SELECT * FROM tbl_cities; END IF
prostě nerespektuje základní MySQL příkaz SELECT
.
Měli byste začít s SELECT
... atd...