I had similar issues with ESP32-S3-devkitC (JTAG scan: all zeros).
After spending many hours I eventually find out that I needed to set a fuse in order to use the JTAG interface over pins 39-42.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/jtag-debugging/configure-other-jtag.html
Install python, run cmd and type something like
python espefuse.py --baud 115200 --port COM25 burn_fuse STRAP_JTAG_SEL
As far as I read setting this fuse cannot be undone, so do it with care.
Posting in case others have same issue.