It's a wildcard character. Run echo * and you will see that it expands to the list of filenames in the current directory. You can also specify part of the filename. For example *.png will give you the list of all PNG files.
1. Yeah. You can check it out for yourself. Just run echo * from the command line to see what you get.
2. tree is a command. I don't have it installed so I haven't tested it but from what I read it will print the files in the current working directory (note that the working directory has been changed by the previous command cd "$i").