AppleTV is making massive requests while sleeping

$ man dnsmasq
[..]
       -T, --local-ttl=<time>
              When  replying with information from /etc/hosts or configura-
              tion or the DHCP leases file  dnsmasq  by  default  sets  the
              time-to-live field to zero, meaning that the requester should
              not itself cache the information. This is the  correct  thing
              to do in almost all situations. This option allows a time-to-
              live (in seconds) to be given for these  replies.  This  will
              reduce the load on the server at the expense of clients using
              stale data under some circumstances.

Try up local-ttl to 60 seconds at first by creating a new config file with below:

sudo nano /etc/dnsmasq.d/99-local-ttl.conf

Containing below line:

local-ttl=60

Save/exit and run below to apply:

pihole restartdns

If that lowers the number of queries, you can try lower it to two seconds.
You want it as low as possible to prevent "clients using stale data under some circumstances".