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