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...