ping is extremely straightforward. All it does is send one very specific kind of packet to a specific destination and it either goes or it doesn't.
nmap is a whole suite of stuff. There's not an "nmap ping" kind of ping, it's doing a variety of things, and not even the same thing all the time.
Reading through the nmap documentation I find this:
Quote:
For unprivileged Unix shell users, the default probes are a SYN packet to ports 80 and 443 using the connect system call. This host discovery is often sufficient when scanning local networks, but a more comprehensive set of discovery probes is recommended for security auditing.
80 and 443 wouldn't have found your ssh port. Perhaps you should run it as root, so it can do more.
Also try --traceroute in case it's picked some crazy destination instead of the correct interface.
In short, if you can ping and nmap can't, nmap's wrong.