Mechanize works as expected if either IO::SOCKET::SSL or NET::SSLeay is not installed.
That makes sense, somewhat, because IO::Socket::SSL requires Net::SSLeay (so you should not be able to install or use the first without the second anyway). Net::HTTPS prefers IO::Socket::SSL over Net::SSL, so if IO::Socket::SSL is completely installed (i.e., with Net::SSLeay), then it will use that library. Otherwise it will use Net::SSL, and that is what is happening if you only have one of those two modules you mention installed.
Make sure you have the latest version of Net-HTTP because there have been issues with that library when used in combination with IO::Socket::SSL. You can also set $Net::HTTPS::SSL_SOCKET_CLASS or environment variable PERL_NET_HTTPS_SSL_SOCKET_CLASS to 'Net::SSL' to explicitly use that library instead of the other.