S'il s'agit d'une procédure que vous écrivez, vous devriez essayer :
BEGIN
IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
SELECT * FROM tbl_cities;
END IF
END
S'il s'agit d'une requête, BEGIN et END n'ont rien à faire ici.
Modifier
Eh bien, il n'y a pas vraiment plus à dire, IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN SELECT * FROM tbl_cities; END IF ne respecte tout simplement pas l'instruction MySQL de base SELECT
.
Vous devriez commencer par SELECT ...etc...