So, First thing's first.You won't be able to do this with HAProxy.Really the only way you can achieve what you want is to sit the MC server behind a VPN.So, you'll need to set up a VPN server, OpenVPN, WireGuard, etc. Shift your MC server to sit in a DMZ, if you haven't already and then point all VPN connections to the DMZ.If you want, you can also configure unbound to allow the users connecting to the VPN to use hostnames instead of IP addresses.
Yes, I am coming to the conclusion that this cannot be done using HAProxy after additional searching. The main issue is that Minecraft is not an HTTP protocol, and you cannot authenticate using a TCP proxy. This seems strange to me as I would think you can authenticate via HTTP, then remember the IP address that authenticated, and then allow only that IP address to go through the TCP proxy. It seems like this would be a desired function as not everything is HTTP.