If one promises another person that he will perform a makrooh act (e.g. eat dinner alone tonight), does he have to fulfill it?

An oath taken for the performance of an act which is haraam or makrooh, is not valid. Similarly, an oath for renouncing an act which is obligatory or Mustahab is also void. And if he takes an oath to perform a normal or usual act, it will be valid.