Int - это тип значения, который означает, что нет такой вещи, как null int. Так что нет, TryParse никогда не изменит параметр out так, чтобы он был нулевым.
Но проблема в том, что вы передаете строку в выходной параметр TryParse, когда он ожидает целое число.
Тебе нужно что-то вроде этого ...
Int categoryID = 0;
string strCategoryID = "somestringmaybeitsaninteger";
int.TryParse(strCategoryID, out categoryID);