If you can ping the box that's running named from all of the other systems, your network connectivity is fine.
If you can resolve addresses in your domain (dnsserver.co) correctly on some of the other boxes, then your DNS setup is fine.
That suggests to me that the problem is something like an internal firewall.
A few things to try:
On the nameserver box, do
. If it comes back with the default (three chains, INPUT, FORWARD, and OUTPUT, all with a policy of ACCEPT, and nothing more), then there's no firewall on your DNS box. (There probably isn't, it's just something that needs to be checked.)
From the Mac box, try
telnet 10.0.1.60 <port>
where port is (one at a time) 22 (ssh), 23 (telnet), 53 (DNS) and 54 (nothing I know of). You're looking for differences in what you get. Most likely, ssh is open, telnet is closed, dns is what we're curious about, and 54 is just there in case you get something different from a closed port and a non-existent one. (Shouldn't, but...)
If you get something similar to the ssh port from the DNS port, then you have connectivity to the service, and something weird is going on.
From the Mac, try both
# nslookup ns1.dnsserver.com ns1.dnsserver.com
# nslookup ns1.dnsserver.com 10.0.1.60
If the IP address version works, but the other doesn't, you haven't correctly told the Mac where/what to look for nameservers. (Since OS X derives a lot from BSD, it should be pretty similar to your Linux machines, but I don't know Macs well enough to guarantee that.)
If neither variant of nslookup works, and you've eliminated a firewall running on the DNS box, then there almost has to be something on the Mac and IOS devices.
I can't help much with finding/opening a hole in the firewall on those.
One last thought, if these machines are getting their network information from DHCP (likely), they're most likely getting it from the wireless router. That info might be stored somewhere other than /etc/resolv.conf, or anyplace else you'd normally specify that stuff. You should be able to get into your router, and you may
be able to change what it passes out as a list of DNS servers. I'd put yours last, not first. Nothing else will resolve that domain, and you don't want to risk breaking your internet connection. (Note, if this is the problem, then the IP version of the nslookup command should work.)
Hope this helps