!(pattern) is ksh glob syntax, in zsh, you use ^(pattern) to negate the matching when extendedglob enabled:
setopt extendedglob
print -rl -- ^(2test|3test)
If you want to use ksh syntax, you need to enable kshglob:
setopt kshglob
print -rl -- !(2test|3test)
You can also use the and-not/except operator:
setopt extendedglob
print -rl -- *test~[23]*
(*test files except those that start with 2 or 3).
Also not that unless the nobareglobqual option is enabled or you use |s within them, trailing (...) glob grouping operators conflict with glob qualifiers. For example, in !(foo) or ^(foo), the foo would be treated as a glob qualifier. You'd need ^foo or !(foo)(#q) (the (#q) adds a non-bare (explicit) glob qualifier).