En caso de que alguien más tropiece con el mismo problema, y para ahorrarles 2 horas profundizando en el código fuente de PHP, las conexiones PDO MySQL IPv6 funcionan si coloca corchetes alrededor de la dirección.
Ver:https://github.com /php/php-src/blob/master/main/streams/xp_socket.c#L568
por ejemplo
$pdo = new PDO("mysql:host=[1234:5678::42];port=3306;dbname=foo", ...);