Try this...
IF OBJECT_ID('TempDB..#mytable') IS NOT NULL
DROP TABLE #mytable
CREATE TABLE #mytable
(
ID INT IDENTITY(1,1) NOT NULL
,GrpID INT NULL
,GrpName VARCHAR(50) NULL
,PrvID INT NULL
,PrvName VARCHAR(50) NULL
,Spc VARCHAR(50) NULL
,PRIMARY KEY (ID)
)
INSERT INTO #mytable (GrpID, GrpName, PrvID, PrvName, Spc)
SELECT '1234','Med Associates','','','Mixed' UNION ALL
SELECT '1234','Med Associates','6875','Bill Ham','Cardiology' UNION ALL
SELECT '1234','Med Associates','3274','Sarah Jones','Cardiology' UNION ALL
SELECT '8975','Pulm Associates','','','Mixed' UNION ALL
SELECT '5781','Babies Inc','','','Pediatrics' UNION ALL
SELECT '6321','ABC Therapy','','','Mixed' UNION ALL
SELECT '6321','ABC Therapy','4925','Tate Silverman','Physical Therapy' UNION ALL
SELECT '6321','ABC Therapy','3274','Sarah Jones','Occupational Therapy'
SELECT DISTINCT
m.GrpID
,m.GrpName
,m.Spc
FROM
#mytable AS m
INNER JOIN
(
SELECT
GrpID
,COUNT(DISTINCT Spc) AS SpcCount
FROM
#mytable AS countspc
WHERE
ID > 0
GROUP BY
GrpID
) Sub1
ON m.GrpID = Sub1.GrpID
WHERE
(Spc = 'Mixed' AND PrvID = 0 AND SpcCount = 1)
OR (Spc <> 'Mixed' AND SpcCount = 2)