You can achieve this using the wildcard not operator ("~") :
(sssetfirst nil (ssget "_X" (list '(0 . "TEXT,MTEXT") '(1 . "~*NOTAS PARTICULARES*") (cons 410 (getvar 'ctab)))))
However, if you wanted to exclude multiple patterns by separating the patterns using a comma (e.g. "PATTERN1,PATTERN2") you should note that the not operator will only apply to the first wildcard pattern in the delimited string (e.g. "~PATTERN1,PATTERN2" will still include "PATTERN2") :
_$ (wcmatch "PATTERN1" "~PATTERN1,PATTERN2")
nil
_$ (wcmatch "PATTERN2" "~PATTERN1,PATTERN2")
T
And so if you were looking to exclude multiple patterns, you could use either:
(sssetfirst nil (ssget "_X" (list '(0 . "TEXT,MTEXT") '(-4 . "<NOT") '(1 . "PATTERN1,PATTERN2") '(-4 . "NOT>") (cons 410 (getvar 'ctab)))))
Or:
(sssetfirst nil (ssget "_X" (list '(0 . "TEXT,MTEXT") '(1 . "~PATTERN1") '(1 . "~PATTERN2") (cons 410 (getvar 'ctab)))))
Since the filter list for an ssget expression implements an implicit AND logic.