Você está usando executeQuery , que deveria retornar sql::ResultSet e você está consultando "CREATE USER" que retorna verdadeiro ou falso.
Existe um executar método para tais casos. Então...
stmt = con->createStatement();
stmt->execute("CREATE USER 'user22'");
não lançará um erro.
Sim, eu sei que o post tem 2 anos, mas se alguém se deparar com o mesmo problema no futuro, pode ser útil para eles.