Claro, porque char es un tipo de valor, no es un objeto.  Tampoco podes asignarle null a los int o a los double por ejemplo...
 
Prueba con  
Código:
 char unChar = '';
(unChar == '')? return "hola, esto anduvo" : return "no, no anduvo";
  
Sino, lo que se me ocurre es usar wrappers, un objeto que contenga un caracter... Que hasta donde yo se .NET no tiene y Java si :(. 
Seria algo como:  
Código:
 public class NullableCharacter{
private bool _hasValue = false;
private char _value;
public bool hasValue{
  get { return _hasValue; }
}
public char Value{
  set { if (value != null){
                 _value = value;
           }
           _hasValue = (value != null);
        }
  get { return _value; }
}
public NullableCharacter(char value){
  this.Value = value;
}
}
y despues puedes hacer algo como
NullableCharacter c = new NullableCharacter();
if (c.HasValue){
//Aca es que tiene valor
}else{
//Aca no
}
y lo podes crear como
new NullableCharacter('a');
...
  Espero que sirva
Un saludo
Guille