There probably is no simple way, but you can do it with a lot of effort by using the extended wildcard exclude syntax. This may not be documented in the man page but is mentioned more in the README. However, for details of the syntax you need to see the man page for fnmatch(3).
Basically, you can use !(somedir) as an exclude to not exclude, so you end up only including that directory. Imagine you have the following example tree in /tmp
$ mkdir -p a/b d/e d/e2
$ touch a/b/c d/e/f d/e2/f2
and you only want to copy a and d/e whilst preserving these full pathnames. You can use
$ echo '!(a)' >exclude
$ mksquashfs /tmp mysq -ef exclude -wildcards
$ echo -e '!(d)/\nd/!(e)' >exclude
$ mksquashfs /tmp mysq -ef exclude -wildcards
Listing the filesystem with unsquashfs -l mysq produces the output
squashfs-root/a
squashfs-root/a/b
squashfs-root/a/b/c
squashfs-root/d
squashfs-root/d/e
squashfs-root/d/e/f
Each time, the source directory is /tmp, but the first time we exclude everything except directory a, and the second time we exclude everything except directory d and d/e. This uses a multi-level exclude file where on each line we exclude one more directory step in the path except the one that is to be retained.
A simpler solution is to create the wanted hierarchy of directories somewhere, and mount -bind the final directory to the real directory.
For example,
$ mkdir -p a/usr/local/bin a/some/other/bin
$ sudo mount -o bind /usr/local/bin a/usr/local/bin
$ sudo mount -o bind /some/other/bin a/some/other/bin
$ mksquashfs a ~/mysq
$ sudo umount a/usr/local/bin a/some/other/bin