Back when the instructions were introduced there were backwards compatibility issues that prevented them from being available in user space. (Some existing codes used those opcodes assuming that they would raise #UD, and would be broken if they didn't do that). That problem was fixed for the future by clarifying in the instruction set reference that unimplemented opcodes cannot be relied upon to stay unimplemented, and that it you want to raise the #UD exception you should use the UD2 instruction which is guaranteed to do that in perpetuity.
It's probably no use to you, but on KNL you can have monitor/mwait enabled in ring3 by writing to model specific registers. (See this discussion or the latest Software Developers' Manual which now includes the MSR details too).