Nel caso in cui qualcun altro si imbattesse nello stesso problema e per risparmiare loro 2 ore esplorando il sorgente PHP, le connessioni PDO MySQL IPv6 funzionano se metti parentesi quadre attorno all'indirizzo.
Vedi:https://github.com /php/php-src/blob/master/main/streams/xp_socket.c#L568
es.
$pdo = new PDO("mysql:host=[1234:5678::42];port=3306;dbname=foo", ...);