The behaviour of Tab on an empty line can be configured by the zstyle insert-tab:
zstyle ':completion:*' insert-tab <VAL>
where <VAL>
can be
- true [default]: insert TAB character
- false: perform completion (completion list contains all commands)
- pending or pending=val: insert TAB character IF there is unprocessed input (pasting text), otherwise perform completion
So if you don't want it to insert a TAB, you can set it to false:
zstyle ':completion:*' insert-tab false