As I said, don't use CNAME, use multiple A record instead. You also have an important A record missing, the ns1.mydomain.com itself. Don't set your MX to mail.mydomain.com, it's extremely unreliable. Set your MX to point to ns1.mydomain.com. Your SOA was incorrect, it should point to ns1.mydomain.com.
It's easily said than done so here comes the example:
$TTL 86400
mydomain.com. IN SOA ns1.mydomain.com. hostmaster.mydomain.com. (
20011218 ; serial
8H ; refresh, seconds
2H ; retry, seconds
3D ; expire, 4W too long
1D ); minimum, seconds
mydomain.com. IN NS ns1.mydomain.com.
ns1.mydomain.com. IN A 12.34.56.78
mirror.mydomain.com. IN A 78.65.43.21
www.mydomain.com. IN A 12.34.56.78
ftp.mydomain.com. IN A 12.34.56.78
mydomain.com. IN A 12.34.56.78
mydomain.com. IN MX 0 ns1.mydomain.com.
*.mydomain.com. IN A 12.34.56.78