First, I have not used BIND since I found that dnsmasq is simpler, yet sufficient (for my needs).
You have LAN (192.168.1.0/24?) and then there is “outside”. If the intention of “local DNS” is that members of LAN can resolve names from it, then we should not care about the outside (at first).
When I’m in a client and run any command that has to resolve a name to IP (or IP to name), it will look from network configuration list of DNS servers and domain/search-string. On Linux those are in /etc/resolv.conf.
Your old DNS server (server1) seems to have servername 213.80.98.2 in there, while the new one (server) has servername 192.168.1.254 – the address of the router, which it probably got as part of network config from DHCP server, which I presume to be the router. Consumer routers tend to offer DHCP service and DNS service.
NetworkManager connection can be set to use DHCP, but ignore the DNS servername that DHCP offers and use one or more statically set servers. (See man nmcli and man nm-settings.)
I believe that commands, like nslookup, host, and dig will ignore the /etc/resolv.conf – at least if they are given address of DNS server as additional parameter.
The point is that if router is the DHCP server and if you don’t set it to send 192.168.1.221 as (one of) the DNS server or do not have 192.168.1.221 and/or IP-of_server1 manually configured in the clients (which is less recommended, since DHCP is really convenient) , then nobody will use those DNS servers.
Logically, if the clients connect to local DNS for all queries, then the local DNS has to somehow resolve the “outside” names too. For that the DNS server has to have config - “whom to ask from, if name is not in LAN”.