Pi-Hole and IPV6 - How to make it work?

Nothing, as far as Pi-hole's DNS operation is concerned.
If the Pi-hole host machine has acquired IPv6 addresses, Pi-hole would answer DNS requests arriving from clients via IPv6 as well as IPv4. Whether a host does or does not have IPv6 connectivity depends on the host's machine OS configuration, not on Pi-hole's.

Any secondary DNS resolvers, and your clients may by-pass Pi-hole via those secondaries at their own discretion.
Pi-hole has to be the sole DNS resolver for your network.

Note that if your router wouldn't allow changing its advertised IPv6 DNS server address, your clients would be able to by-pass Pi-hole via that IPv6. In that case, your only option to avoid such by-passes would be to disable IPv6 altogether.

But let's assume you can change or disable it:
DNS is ignorant towards the transport protocol, i.e. it is designed to provide the same answers regardless wether a client sends a request via IPv4 or IPv6.
This means that even with public IPv6 connectivity, there is no need to provide an IPv6 address as a local DNS resolver at all, as long as clients are IPv4-capable.

If you can configure your router to NOT distribute an IPv6 address at all as DNS server (i.e, neither Stateful or Stateless DHCPv6 nor SLAAC/NDP/RA/RDNSS), then all your clients would have to use their IPv4 address when sending DNS requests to your Pi-hole host's IPv4 address. Since the vast majority of client OSs are dual-stack or IPv4-only (in fact, I am not aware of a device that can't handle IPv4 by default), I'd personally go for NOT distributing/advertising an IPv6 address as DNS resolver - if that's possible with your router.
That way, your internal private traffic would stay IPv4.

This would also avoid the hassle of having to deal with changing IPv6 addresses in your Pi-hole's Query Log, making it way easier to identify client IPs. Note that with IPv6, both the prefix as well as the interface identifiers are designed to change (e.g. IPv6 Privacy Extensions).

If your router would only alllow to change the IPv6 DNS server address, I'd try to avoid GUAs (2000::/3 range).
Since your router doesn't support ULAs (fd00::/8 range), you could try to use a LLAs address (range fe80::/10).
As you already noted, that will only work under a certain precondition: link-locals are non-routable, i.e they are only accessible by other devices on the same link/network segment.
In layman's terms, that would mean all devies directly connected to your router via wifi or cable in a standard home usage scenario.
But any L3 switching network contraption that splits the network into multiple links (additional routers, VLANs, certain managed/smart switches or access points), and clients on those other links wouldn't be able to communicate with Pi-hole's via its LLA.