Squid IPv6 transparent mode
Add IPv6 transparent mode feature to Squid
Your PF rule redirects a packet to ::1, but doesn't change the receiving interface. Thus, it violates scoping rules. You can tell by running 'netstat -s -f inet6 | grep "violated scope"' before and after generating the traffic that you want to redirect. The check is in in6_setscope().
The simple workaround is to change your rdr rule to redirect to your actual link-local, site-local, or global IPv6 address instead of ::1.
Does transparent mode have to use localhost? Seems like for IPv6 it could bind to an interface address or a dedicated VIP bound to localhost and setup intercept in squid + corresponding NAT rules to redirect traffic. Either way would avoid the use of ::1 which seems to be the primary issue.