Caso alguém mais se depare com o mesmo problema, e para economizar 2 horas investigando a fonte PHP, as conexões PDO MySQL IPv6 funcionam se você colocar colchetes ao redor do endereço.
Veja:https://github.com /php/php-src/blob/master/main/streams/xp_socket.c#L568
por exemplo.
$pdo = new PDO("mysql:host=[1234:5678::42];port=3306;dbname=foo", ...);