loadFromFile retourne true si l'image est chargée, false si y'a eu une erreur. Donc ton if tu rentres dedans que si y'a eu une erreur au chargement de l'image.
Sinon je vois pas pourquoi tu t'embêtes à utiliser un sf::Image, si t'en as pas besoin utilise directement une sf::Texture comme dans le tout premier exemple du tutoriel sur les sprites.
Bref charge ta texture, "mets la" dans ton sprite et ça roule.