they don't have your mac address in most situations; they have the mac address of the router, which is not the same thing. hence the discussion above about being careful to avoid a router that might leak this information in some other way.
dhcp gives addresses to the computers connected to the wifi. but those addresses are only used on the "user" side of the router. packets going out from the router to the internet do not contain those addresses (nor do they contain each user's mac address).
as far as the rest of the internet goes, there's a single address, with multiple ports, which is your router. the nat (network address translation) in your router maps from the port used to the local mac/ip (dhcp) address. so someone "outside" does not know, without additional information, which user of the wifi is making a particular connection. hence this story.
dhcp gives addresses to the computers connected to the wifi. but those addresses are only used on the "user" side of the router. packets going out from the router to the internet do not contain those addresses (nor do they contain each user's mac address).
as far as the rest of the internet goes, there's a single address, with multiple ports, which is your router. the nat (network address translation) in your router maps from the port used to the local mac/ip (dhcp) address. so someone "outside" does not know, without additional information, which user of the wifi is making a particular connection. hence this story.