bind9 doesn't load zone with only CNAME record

You can't have a CNAME at apex of your domain name, per design of the DNS.

And you can't have a valid zone without SOA and NS records which is exactly why you can't have a CNAME record at apex, since CNAME is incompatible, besides DNSSEC related records, with any other records on the same name, for obvious reasons of ambiguity otherwise.