"Won't work at all" is not a problem description. What is your code trying to do? What do you expect to happen? What does actually happen?
I only quickly opened the code and wonder what this should do:
mutex1.lock();
if(listenertcp.accept(socket1) == sf::Socket::Done)
{
mutex1.lock();
Calling lock on the same mutex twice, seems wrong.