Thank you very much Aditya, now it works.

As you said, the trick was to use \doiftextelse{}{}{} function as test of emptyness function, and \labeltext{chapter} instead of \currentstructurelabel as variable for the test because the latter was never found empty, even when it was.

Thus the right code for me is:

\define[1]
\MyConversion{\doifelse{\currentsectioncountervalue}{1}{\doiftextelse{\labeltext{chapter}}{ONE}{#1}}{#1}}
\defineconversion[MyConversion][\MyConversion]
\setuphead[chapter][conversion=MyConversion]

\starttext

\setuplabeltext[chapter=]
    \chapter{Cool}
    \chapter{Cat}
    \chapter{Mouse}

\setuplabeltext[chapter=CHAPTER~]
\setupheadnumber[chapter][0]
    \chapter{Cool}
    \chapter{Cat}
    \chapter{Mouse}

\stoptext