I successfully use adb on NixOS 23.05. I’ve basically the same settings as you have. See also Android - NixOS Wiki. My invocation (Device has enabled USB debugging mode) looks like this:
$ adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
650dfbc3 device
Could you try to reboot your machine and then try again adb devices?
One suspicious thing I found is that if I run strace, there are many “no such file or directory” errors like this:
$ strace adb devices
...
openat(AT_FDCWD, "/nix/store/rkqghw7cc27qxf6iiqgg95rlzvf22s05-protobuf-3.21.12/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/69jpyha5zbll6ppqzhbihhp51lac1hrp-zlib-1.2.13/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/2av8x1ipwfm5n8nrx1i18bygza6v8b6g-brotli-1.0.9-lib/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/fdcvffhq0l302r41xvs1idxi4bpria5j-lz4-1.9.4/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/jwvvq9nyfrjvj10pl533my6d3gpn9nq0-zstd-1.5.5/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/igjn1jlnf82facxjgvc06if1mllra29h-libusb-1.0.26/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/46m4xx889wlhsdj72j38fnlyyvvvvbyb-glibc-2.37-8/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/843dqq10jdkalr2yazaz6drx334visrb-gcc-12.2.0-lib/lib/glibc-hwcaps/x86-64-v3/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/843dqq10jdkalr2yazaz6drx334visrb-gcc-12.2.0-lib/lib/glibc-hwcaps/x86-64-v3", 0x7ffe5ba45c80, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/843dqq10jdkalr2yazaz6drx334visrb-gcc-12.2.0-lib/lib/glibc-hwcaps/x86-64-v2/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/843dqq10jdkalr2yazaz6drx334visrb-gcc-12.2.0-lib/lib/glibc-hwcaps/x86-64-v2", 0x7ffe5ba45c80, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/843dqq10jdkalr2yazaz6drx334visrb-gcc-12.2.0-lib/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
...