Well, that's perfectly expected.
When you're using destination NAT to translate an router IP to an IP behind the router on the LAN, the packet now carries an IP address that isn't on the router. So that packet is never in the input chain, it's in the forward chain, therefore rules in the input chain can't affect it. 'redirect' is a special destination NAT version that rewrites the destination address to the preferred IP address on the interface the router receives the packet through, so those packets will always be in the input chain.
Remember: 'input' chain = packets that have a destination IP address that is on a router interface = traffic TO the router, AFTER destination NAT. 'forward' chain = packet that is going THROUGH the router, AFTER destination NAT. 'output' chain = packet generated by the router itself. 'prerouting' mangle and filter = BEFORE destination NAT, both packets TO and THROUGH the router. 'postrouting' mangle and filter = just before source NAT.
add action=redirect chain=dstnat comment="Forward to DNS" disabled=no \
dst-address=1.1.1.1 0 dst-port=53 protocol=udp to-ports=53
If 1.1.1.1 is your interface IP address that rule makes no sense. You're rewriting a packet with a destination IP address of 1.1.1.1 to have a destination address of 1.1.1.1. That's a no-op.