Using a NULL value to signify that the value does not mattter. Not that it isn't known
My approach for this is to think of what the fields are, which is storing information on computers. There is no case ever where having a fan would result in NULL, just a yes or no. In your case of using it as a major category for computers, I would avoid that, and instead use your queries and stored procedures to consider the filters. In the stored procedure you can have the WHERE clause look for the different combinations;
Only Computers with fans -- SELECT [recommendations] FROM table WHERE [has_fan]=1
Only computers without fans --SELECT [recommendations] FROM table WHERE [has_fan]=0
All computers\don't care -- don't use a WHERE clause;SELECT [recommendations] FROM table