frontend domain.com
bind 0.0.0.0:443 ssl crt /etc/haproxy/certs/domain.com.pem
На 443 порту у вас все эти сайты терминейтятся, а сертификат вы указываете один.
конкретно в вашем случае необходимо директиву crt указывать несколько раз:
bind 0.0.0.0:443 ssl crt /etc/haproxy/certs/domain.com.pem crt /etc/haproxy/certs/en.domain.com.pem crt /etc/haproxy/certs/ru.domain.com.pem crt ...
Или же - проще - указать директорию где лежат правильно приготовленные сертификаты и загрузить их все одно опцией crt /etc/haproxy/certs/
HAProxy в алфавитном порядке будет подставлять сертификаты. Соответственно если у вас в папке лежит устаревший сертификат для en.domain.com и новый для wildcard.domain.com - загружаться будет en... пока вы его не удалите и не перезагрузите HAProxy. Сертификаты из папки подгружаются при старте HAProxy и при замене сертификатов надо перезагружать софт (особенно актуально, если вы используете загрузку из папки)
К сожалению, вы не указали версию HAProxy и OpenSSL либы с которой собрана хапрокси.
В зависимости от версии хапры, опенссл и наличия\отсутствия openssl либы оно может работать по разному.