As others have answered, MAC filtering and SSID hiding don't help against an active attacker.
But, they may be worthwhile for some degree of protection from untrusted devices used by mostly-trusted people. I'll explain with a hypothetical situation:
Say you have a router at home (or in a business) configured for a separate "guest network". Many home routers make this setting easily available, often using a WPA key for the primary "home" network, but providing a captive portal for the guest network.
It can be much more convenient (and is definitely more secure) to use the primary network, so your family naturally uses that. But being the tech geek you are, you've been certain to secure all the devices on your home network, keeping them fully patched with up-to-date antivirus, firewalls, etc.
Now, while you're at work, your teenager's friend comes over to hang out at the house, and she brings her laptop with her. She wants the wifi password. You want her to use the guest network, because who knows what's on that laptop?
Your teenager could just give out the primary wifi password, but you've configured MAC address filtering. So instead, she gives out the password to the guest network because it would be a pain to try getting her friend's laptop on the home network, even if she had the router admin password. They grumble about needing to reconnect every time she comes over, but the untrusted laptop stays off your trusted network.