Stai usando executeQuery , che doveva tornare sql::ResultSet e stai interrogando "CREATE USER" che restituisce vero o falso.
C'è un esecuzione metodo per tali casi. Allora...
stmt = con->createStatement();
stmt->execute("CREATE USER 'user22'");
non genererà un errore.
Sì, lo so che il post ha 2 anni, ma se qualcuno si imbattesse nello stesso problema in futuro potrebbe essergli utile.