Se è una procedura che stai scrivendo dovresti provare:
BEGIN
IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
SELECT * FROM tbl_cities;
END IF
END
Se si tratta di una query, BEGIN
e END
non avere niente da fare qui.
Modifica
Bene, non c'è davvero altro da dire, IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN SELECT * FROM tbl_cities; END IF
semplicemente non rispetta l'istruzione SELECT
di MySQL di base .
Dovresti iniziare con SELECT
...ecc...