Если я правильно понимаю, еще где-то в cpp у вас должна быть строка
C++ (Qt)
Singleton* Singleton::instance = Singleton::getInstance();
т.е. в результате типичная ошибка статической инициализации. Статические члены инициализируются в произвольном порядке, и у вас instance инициализируется перед mutex. Погуглите про синглтон Майерса и про Double Lock Checking, эта тема довольно подробно раскрыта у Александреску, например.
UPD: Самый простой способ - это заменить статический член mutex статической же функцией, возвращающей референс на этот мьютекс:
C++ (Qt)
private:
static QMutex& mutex() {
static QMutex _mutex;
return _mutex;
}