Regex (ECMAScript), 21 bytes
\b(x+)(xx+,|,xx+)\1\b
Returns a non-match if the array is insignificant, and a match otherwise (i.e., its boolean result is inverted).
If this solution were converted to match=true logic, it would be ^(?!.*\b(x+)(xx+,|,xx+)\1\b)
(28 bytes).
# No anchor; can match starting anywhere
\b # Assert word boundary, i.e. either the start of the string before
# an "x", a position after an "x" and before a ",", a position
# after a "," and before an "x", or the end of the string after an
# "x".
(x+) # \1 = any substring of "x"es
(
xx+, # 2 or more "x"es followed by ","
| # or
,xx+ # "," followed by 2 or more "x"es
)
\1 # Match what was captured in \1
\b # Assert word boundary