Local DNS resolves first time, but not after (iOS only)

DNS will return DNS records, but never any web page.
Are you saying that Cloudflare's DNS servers are answering DNS requests with your router's IP?

I guess you are using mydomainX.com as a placeholder for some other domain names, but would those be publically registered domains?

Can you show some log output from /var/log/pihole.log for both some lookups answered locally as well as some of those unexpectedly forwarded to Cloudflare?