Three things could be adjusted there.
Code:
find / -path /tmp/copy1 -prune -o -type f -user user1 -exec cp {} /tmp/copy1/ \;
First, a -prune is needed to skip copying the destination directory. It is under / after all.
Then for precision, there ought to be a trailing slash / in the destination to ensure that it is treated as a directory. Otherwise, if it does not already exist, it will be treated as a file.
Lastly, the -exec option needs either a semicolon ; or a plus + to indicate the end of the option. Since a semicolon has meaning in the shell itself, using a backslash \ will ensure that it is passed verbatim to
find