The @id variable is too small. The result of encryption is 52 bytes. Make @Id to be varchar(52) and your code will work.
To figure this out, you could have printed the size of the encrypted blob:
print
datalength(encryptbykey(key_guid('CCardKeys'),'Test'))
Thanks
Laurentiu