Estás equivocado, file_exists() funciona a nivel local, jamás estás preguntando a la conexión FTP si el archivo existe.
Es más, usas dicha función mucho antes de conectar al FTP, ¿te hace sentido eso que argumentas?
La extensión de FTP debe proveer un equivalente para la conexión, revisa el manual.