One solution would be to use this approach to center the last line in the paragraph while leaving the rest justified. So, you could define a new environment in your document preamble and use it instead of the old one, like this:
\newenvironment{oneparchoicescentering}{
\begingroup
\leftskip=0mm plus .5fil%
\rightskip=0mm plus -.5fil%
\parfillskip=0mm plus 1fil\relax
\begin{oneparchoices}
}{
\end{oneparchoices}
\par
\endgroup
}
The \par is needed in order to make the paragraph complete in a way. I tried without, but this doesn’t seem to work. I guess, it is needed to change from horizontal mode back into vertical in order to place the boxes properly.
The result would be:

Is this want you want to achieve?
By the way, you should use a4paper instead of paper=a4 as option in your document class. Also, I think that using only capital letters makes the text a bit hard to read ...
Edit: If you want to overwrite the oneparchoices environment in order to be able to keep the syntax, you could instead put the following in your preamble (the following at the same time being a MWE):
\documentclass[11pt,a4paper]{exam}
\usepackage{multicol}
\let\oldoneparchoices\oneparchoices
\let\oldendoneparchoices\endoneparchoices
\renewenvironment{oneparchoices}{
\begingroup
\leftskip=0mm plus .5fil%
\rightskip=0mm plus -.5fil%
\parfillskip=0mm plus 1fil\relax
\begingroup\oldoneparchoices
}{
\oldendoneparchoices\endgroup
\par
\endgroup
}
\begin{document}
\begin{multicols*}{2}
\begin{questions}
\question First Question
\begin{oneparchoices}
\choice ABC
\choice DEF
\CorrectChoice GHI
\choice JKL
\choice MNO
\end{oneparchoices}
\end{questions}
\end{multicols*}
\end{document}
Single-line answers not centered
In order to prevent single-line answers to be also centered (although I personally would not mix centered and ragged right text), the following code could be used making use of the package environ:
\documentclass[11pt,a4paper]{exam}
\usepackage{multicol}
\let\oldoneparchoices\oneparchoices
\let\oldendoneparchoices\endoneparchoices
\let\oneparchoices\relax % We have to unset these to make \NewEnviron work
\let\endoneparchoices\relax
\usepackage{environ} % Load environ package
\newlength{\choiceslen} % Creating new length for later test
\NewEnviron{oneparchoices}{
\begingroup
\settowidth{\choiceslen}{% % Setting the above created length to the length of all answers
\begingroup\oldoneparchoices
\BODY
\oldendoneparchoices\endgroup%
}
\ifdim\choiceslen>\linewidth % Test if length exceeds one line, if yes center last line
\leftskip=0mm plus .5fil%
\rightskip=0mm plus -.5fil%
\parfillskip=0mm plus 1fil\relax
\fi
\begingroup\oldoneparchoices
\BODY
\oldendoneparchoices\endgroup
\par
\endgroup
}
\begin{document}
\begin{multicols*}{2}
\begin{questions}
\question First Question
\begin{oneparchoices}
\choice ABC
\choice DEF
\CorrectChoice GHI
\choice JKL
\choice MNO
\end{oneparchoices}
\question Second Question
\begin{oneparchoices}
\choice ABC
\choice DEF
\CorrectChoice GHI
\end{oneparchoices}
\end{questions}
\end{multicols*}
\end{document}
I hope this works as it should. Result would be:
