How is that set up? Are you using Pi-hole's Local DNS to take precedence over the external upstream DNS, and then when you are external the real records are the only ones seen?
If you're using the approach above this would be normal because Pi-hole would return results for A and AAAA records using Local DNS but not for HTTPS and so they would be sent upstream. Since they recieve a technically valid response, this informs the iPhone's behaviour and take precedence, since that is one of the functions of HTTPS and SVCB type records.
if you're not using HTTPS records for real anywhere else internally you can block all HTTPS query types, thus preventing the iPhone from "working around" the otherwise-working setup. Create a regex blacklist entry for
.*;querytype=HTTPS
Does that fix the iPhone and make it work the way you want?