In the default configuration, you get this effect from expand-word which is bound to ^X * (Ctrl+X *) in Emacs mode (if you want it in Vi mode, you'll have to bind it to a key). Unlike ESC * in bash, ^X * in zsh also expands variable and command substitutions.
Additionally, in the default configuration, pressing Tab after a word containing wildcards expands it to the list of matches.
If you have the option glob_complete on, then Tab cycles through the matches rather than inserting all of them. In this case, you can assign a key to the _all_matches completer (mentioned by Stéphane Chazelas in a comment). Quoting the example code in the manual:
setopt glob_complete zle -C all-matches complete-word _generic bindkey '^Xa' all-matches zstyle ':completion:all-matches::::' completer _all_matches _complete zstyle ':completion:all-matches:*' insert true
The difference between the completion widgets (default Tab and this all-matches) and the built-in widget expand-word is that expand-word does shell filename expansion, no matter what the completion context is, whereas Tab and all-matches use the completion context to determine how to process wildcards. For example, after rmdir *, ^X* expands to all files whereas ^Xa expands to directories only.
info zsh _all_matches