It turns out that, when called without arguments, go() actually sets 'operatorfunc' and returns 'g@'. (See this code snippet.)
So the concatenation of 'g@' . '_' results in the g@_ command being executed in normal mode. The <expr> in the mapping makes Vim evaluate it as an expression and finally execute the string result as a normal mode command (...
does that mean go() evaluates to empty string which is concatenated by "_"?
In short, yes, it does. _ is a normal mode command to move cursor on the first nonblank character of the current line (when used without count). It gets executed due to :h map-<expr>
There are two possibilities:
Move the check to after plugins have been loaded, e.g. by hooking into the VimEnter event, as outlined by @ChristianBrabandt's answer.
Force early loading of the plugin:
runtime! plugin/goyo.vim " Try loading the plugin.