Well you are using SFML to draw to the screen, which you don't seem to have a problem with. The problem is in the movement logic. This is something you would need to solve no matter what library you were using to draw. Anyways, I'll try to help a little further.
As for the first problem, I've tried to set the focus to zero after movement, but it worked so fast, that the sprite didn't even have the time and moved only one pixel. Is there any command for "do this (focus=nullptr) after that (movement of focussed sprite) is finished"
You are right, with the way you are doing movement, if you set focus to null after calling move then your sprite won't move very far. Now, as you have things right now, only one object can be moving at a time. Meaning if you tried to move a second object, the first one would stop because there can only be one "focus" object. If that is fine, then what you can probably do is right after moving check to see if the object is near its destination, and if so, set focus to null at that time.
If you want an object to be able to continue moving after focusing a different object you'll probably need more major changes. In that case you'll probably need to use a container (such as vector) to store moving objects and loop through that container to move all of them.
Second problem: if I set a condition "focus=nullptr" inside "leftclicked", than the sprites don't move at all. But they should move.
This is because you are assigning focus instead of doing a comparison. You should use "==" not "=". I'm not sure if this is just a typo or if you don't understand the difference between "==' and "='. If it is the latter you should spend more time studying the language first. It can be very hard to use a library like SFML if you aren't very strong in C++ concepts.
if(focus==nullptr)
I`m moving the focussed object in a loop, because I can't use std::distance command without it. Is there any better solution?
Why wouldn't you be able to use std::distance without a loop? How you have it right now doesn't seem to make sense to me. It technically works, but is very confusing to understand.
Imagine you have 5 enemies. With your loop, the focused object will move towards the first enemy's destination, then the 2nd enemy's destination, etc. The only reason this works is because during the click you are setting all enemy's destination to the same spot. You still have a problem, though, being that the more enemies you have the faster your object will move because it is moving once per enemy.