If echo $DISPLAY is empty, then while very unlikely, maybe something unset DISPLAY or set it to an empty string, maybe in your shell initialization scripts. Again unlikely.
Or XQuartz is on old version or a broken version, or needs to be reinstalled (and then reboot)
I’ve used XQuartz on my Macs for 15 or 16 years, including under Monterey on an M1 Pro CPU model. I know it works, and xclock is always my test app to make sure I have a connection.
Generally I’m using an ssh -Y X11 tunnel to a Linux system, but DISPLAY must be valid for that to work.
So you need to be able to see a DISPLAY value being automatically set when you login to your Mac account and start your terminal session.
NOTE: You DO NOT set DISPLAY, it is automatically set by a working XQuartz when you first login to your Mac.