This seems to work... If you post consumable data (create table scripts, and inserts), it's a lot easier for people to help you - since you've set up the problem for them. Then they can just bang out a solution easily. Like you see below. (you could copy the whole thing into a query window and run it and set up the problem). Makes helping you much easier.
use tempdb;
go
create table Contact(
empID int,
email varchar(30),
seq tinyint);
go
insert into Contact(empID,email,seq)
values (1,'t@t.com',1),(1, 's@s.com', 2),
(2, 'q@.com', 1),
(2, 'q@.com', 2),
(3, 'z@te.com', 1),
(3, 'Z@e.com', 2);
insert into Contact(empID,email,seq)
values (4,'b@te.com',2);
insert into Contact(empID,email,seq)
values (5, null,1),(5,'fifth@gin.com',2);
SELECT e1.EmpID, seq, email
FROM
-- get the first non-null sequence # where the email is not empty
(SELECT EmpID, MIN(seq) As MinSeq
FROM contact
WHERE email IS NOT NULL
GROUP BY EmpID) e1
INNER JOIN
-- join back to another copy of the table and retrieve what we want
(SELECT EmpID, seq, email
FROM contact) e2
-- use the join to do the filtering...
ON e1.empid=e2.empid
AND e1.minseq = e2.seq;
There's probably a neater way of doing this, but it's late and my brain is fried... but it works.