ls utility lists the pathname arguments given on its command line. If any of the arguments corresponds to a directory, then the complete contents of that directory will be displayed. If no argument is given, then
ls lists the current directory, as if
ls . was used.
To be able to list a directory (to see the directory entry for a directory), not its contents, you have the
-d option of
ls. With it, you can say
ls -d dir and get the directory entry for
dir and not its contents.
ls -d by itself only returns a dot (the current directory) is that it's essentially the same as
ls -d ., i.e. "give me the directory entry for the current directory without showing its contents".
ls -d */ command is doing is showing the directory entries for all directories in the current directory that does not have hidden names. You only get directories due to the
/ at the end of the pattern. Since you use
-d, you don't get the contents of these directories.