The reason why it doesn't work is way beyond my SQL knowledge but...
I do know that if you remove the "OR", it works.. but then you only get either the TypeID 31 or 13.
At least, it does give you the tickets after 2017-01-01.
Select Top 1000000 htblusers1.name As [Ticket User],
htblticket.ticketid As [Ticket ID],
htblusers.name As [Ticket Creator],
htblticket.date As [Creation Date],
htblhistorytypes.name As [Creation Type]
From htblhistorytypes
Inner Join htblhistory On htblhistorytypes.typeid = htblhistory.typeid
Inner Join htblticket On htblticket.ticketid = htblhistory.ticketid
Inner Join htblusers On htblusers.userid = htblhistory.userid
Inner Join htblusers htblusers1 On htblticket.fromuserid = htblusers1.userid
And htblhistory.userid != htblusers1.userid
Where htblticket.date > '2017-01-01 00:00:00.000' And htblhistorytypes.typeid = 13