$ 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".