Please try the following solution.
SQL #1 is tokenizing the ename column by using XML/Query.
Predicate r[text()] picks up tokens with any value.
SQL #2 is much simpler.
SQL #1
-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, ename VARCHAR(255));
INSERT INTO @tbl (ename) VALUES
('Peter,J'),
('Mike,S'),
(','),
(', , , ,');
-- DDL and sample data population, end
DECLARE @separator CHAR(1) = ',';
SELECT *
FROM @tbl
CROSS APPLY (SELECT CAST('<root><r><![CDATA[' +
REPLACE(REPLACE(ename,SPACE(1),''), @separator, ']]></r><r><![CDATA[') +
']]></r></root>' AS XML).query('
for $x in /root/r[text()]
return $x
').value('.','VARCHAR(255)')) AS t1(c)
WHERE c = '';
Output
+----+---------+---+
| ID | ename | c |
+----+---------+---+
| 3 | , | |
| 4 | , , , , | |
+----+---------+---+
SQL #2
SELECT *
FROM @tbl
CROSS APPLY (SELECT REPLACE(ename, ',','')) AS t(c)
WHERE c = '';
Output
+----+---------+---+
| ID | ename | c |
+----+---------+---+
| 3 | , | |
| 4 | , , , , | |
+----+---------+---+
WHERE EName NOT LIKE '%[^ ,]%'?