Putting all desktop items into a new folder
You hard-coded "C:\Users\Shadow\Desktop" three times.  Once would have been too many, as it turns a general-purpose script into a throwaway script.  Your script could take a command-line parameter or infer the desktop directory for the current user.

If you must hard-code a path as a string literal, use raw strings to prevent Python from interpreting special backslash escape sequences such as \n for Newline.



Let's focus on this function:


#Function that does the moving
def moveFilesToFolder(files, directory, folder): 
    for files in directory:
        shutil.move(files, folder)




What is files?  It's a parameter that you accept but never use.  Rather, you reuse the same variable name as a dummy variable for iteration.
Using an iteration variable with a plural name is awkward.
What do the parameters directory and folder mean?  How about renaming directory → files and folder → dest_dir for clarity?


I was curious how you actually call that function, given the weird parameter design.


moveFilesToFolder(file, desktop, newFolder)



At first glance, it appears that the script should fail, since file is never defined as a variable in your script.  However, it turns out that file is the name of a built-in constructor function.  So, you're passing some arbitrary function as a parameter to a function that ends up doing nothing with it.  I find that rather funny.