If you mean you want all the files of type directory that are not the target of the shortcut symlink, with zsh:
#! /bin/zsh -
printf '%s\n' *(/^e'{[[ $REPLY -ef shortcut ]]}')
(...): glob qualifier, to further filter files based on other criteria than just name
/: only files of type directory
^: negate the following glob qualifiers
e'{shell code}': select files based on the result (exit status) of the evaluation of the shell code (where the files being considered is in $REPLY)
[[ x -ef y ]]: returns true if x and y point to the same file (after symlink resolution). Typically, it does that by comparing the device and inode number of both files (obtained with a stat() system call that resolves symlinks).
With GNU find (list not sorted, file names prefixed with ./):
#! /bin/sh -
find -L . ! -name . -prune -xtype d ! -samefile shortcut
-L: for symlinks, the target of the symlink is considered. That's needed for -samefile to do the same thing as zsh's -ef above.
! -name . -prune: prune any file but .. Same as -mindepth 1 -maxdepth 1 but shorter and standard.
-xtype d: now that -L is on, we need -xtype to match the type of the original file before symlink resolution:
-samefile shortcut: true if the file is the same as shortcut (after symlink resolution with -L)
To list all directories except those that are the target of any of the symlinks in the current directories:
#! /bin/zsh -
zmodload zsh/stat
typeset -A ignore
for f (*(N@-/)) {
zstat -H s -- $f &&
ignore[$s[device]:$s[inode]]=1
}
printf '%s\n' *(/^e'{zstat -H s -- $REPLY && ((ignore[$s[device]:$s[inode]]))}')
Note that the zsh-bases ones ignore the hidden files. Add the D glob qualifier or set the dotglob option to consider them.