Java può sicuramente stabilire una connessione SSL senza che un client convalidi la catena di certificati del server.
Le classi che stanno stabilendo la connessione (classi javax.net.ssl) tratterebbero normalmente il certificato del server non verificato con sospetto e fallirebbero l'handshake.
Ma forniscono un modo per gli utenti di quelle classi di dire in effetti "Va bene se il certificato del server non viene convalidato, vai avanti e stabilisci la connessione".
Questo è ciò che accade quando dici VerifyServerCertificate=false.
La connessione SSL è perfettamente valida dal punto di vista crittografico ma non è una connessione autenticata perché non hai idea di quale sia l'origine del certificato del server.