Percent sign (%) in front of shell command

% refers to a 'jobid' which is used as part of the "job control and process control" features of zsh. To quote from the user-guide:

'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.

Example:

$> man zshall &
[1]  + 31392 suspended (tty output)  man zshall
$> jobs
[1]  + suspended (tty output)  man zshall
$> %
<manpage-opens-for-zshall>

Read more about it here: http://zsh.sourceforge.net/Guide/zshguide03.html#l39

To answer your real question: If your zsh does not put a warning there ("fg: no current job" or the like) then there IS / WAS a job. Example:

$> sleep 60 &
$> % echo foo
[1]  + 411 running    sleep 60
fg: job not found: echo

The % just got back the background process and runs it. After 60 seconds it got the next 'jobid' which wasn't found.

Thus: The behavior you experienced is a bit strange. Without your full zshrc it's hard to tell what exactly is going on. It seems like you have managed to tell your zsh that the '%' char is starting a comment. I would check the histchars parameter for it's 3rd value:

$> echo $histchars