Au cas où quelqu'un d'autre tomberait sur le même problème, et pour lui faire gagner 2 heures à fouiller dans la source PHP, les connexions PDO MySQL IPv6 fonctionnent si vous mettez l'adresse entre crochets.
Voir :https://github.com /php/php-src/blob/master/main/streams/xp_socket.c#L568
ex.
$pdo = new PDO("mysql:host=[1234:5678::42];port=3306;dbname=foo", ...);