I have replicated in my personal dev. It works fine for me. Here is the logic I used

COndition same as yours

Script:

(function executeRule(current, previous /*null when async*/) {
var rec= current.document_id;
var kn ='';
var gr = new GlideRecord('kb_knowledge');
gr.addQuery('sys_id',rec);
gr.query();
if(gr.next())
{
//kn = gr.kb_knowledge_base;
}
gs.eventQueue('approval.rejected',current,current.document_id.author);

I used OOB event just for testing
})(current, previous);

Regards
Harish