thesnow is correct, but I thought I would provide the explanation for your issue.
Aliases do not accept parameters and even if they did you would not get the desired result. You need to think of the alias as a cut and paste.
So whatever you assign to your alias will directly replace the name of the alias. So if you could accept parameters, your output would have looked like:
$ alias copykey='ssh-copy-id root@$1'
$ copykey server1
$ ssh-copy-id root@server1 server1