What you want is

    (global-set-key (kbd "C-<f1>")
                    (lambda () (interactive)
                      (load-theme 'zenburn t)))
The problem was that `global-set-key` expects a "command", meaning a function (defined, say, with `defun` or `lambda`) with the additional magic form `(interactive)` added after the arguments list, which tells Emacs that the function is meant to be invoked by the user. The `interactive` form takes optional arguments specifying, for example, whether your command should prompt for options in the minibuffer, and so forth.

Your`'(load-theme 'zenburn)` is not a command, or even a function; it's just arbitrary data (equivalent to the result of running `(list 'load-theme (list 'quote 'zenburn)`. Hence the error.

Note also that, since we trust zenburn, we're also applying `t` as the third argument to `load-theme`. Otherwise we'll be prompted to mark the theme as safe.