"FullName LIKE '%{0}%' AND DateSubmitted >= '{1}' AND DateSubmitted <= '{2}' AND (('{3}' = '*' OR Approved = '{3}') OR (Approved IS NULL AND '{3}' IS NULL))"

The part '{3}' IS NULL is always false. 

Also you should be using parameterised querys:

"FullName LIKE @Param1 AND DateSubmitted >= @DateTimeParam1 AND DateSubmitted <= @DateTimeParam2 AND ((@Param2 = '*' OR Approved = @Param2) OR (Approved IS NULL AND @Param2 IS NULL))"

If Approved is null and @Param2 is null the right hand side of the OR would evalute properly.