Your /etc/resolv.conf is generated by your NetworkManager, which you know. Seeing the settings of NM can be confusing, and I had to try to remind myself. You can manually set these in NM or as someone else stated, systemd-resolved might be doing this as well. If you're changing this inside of NM and you're still seeing that, then something is changing it, again systemd-resolved is the most likely culprit but there are other applications that do DNS caching such as unbound, dnsmasq, etc.
You can try seeing NM with the nmcli command such as the following:
$ nmcli connection show Wired\ connection\ 1
Note that "Wired\ connection\ 1" is the name of my connection, but yours might vary. If you hit TAB though a few times it should give you options.
You'd then look for an option like ipv6.dns and if it's not set you'll see "--".
However that "nameserver ::1" is just indicating the ipv6 loopback so on an ipv6 address your NM is saying look for something listening locally.
If you don't like looking at nmcli you could also check nm-connection-editor command:
$ nm-connection-editor
And that opens a GUI for editting connections.
There's also nmtui for NM's terminal user interface.
If you're getting DHCP, it could also be the DHCP server that's giving you this address. In a standard house you'll not set a specific IP address, but your router will give you one, and normally your home computers will also use your router for DNS. So potentially your router is setting this, but that'd be a misconfigured router really, because your router shouldn't be telling your computer to look at local loopback for DNS requests.
Move to ----> systemd-networkd 😉 . Btw check your system isn't also running something systemd-resolved that you probably will want to disable as you are using NM.