Internet of Things (IoT) enables important data collection of the sensor nodes at desired location through device-to-device communication. It helps us in various applications including tracking of physical objects, human health monitoring, climate smart agriculture, smart manufacturing, field surveillance, and intelligent transportation. Since, these applications utilize multi-hop data transmission framework, Quality-of-Service (QoS) such as data transmission delay, data throughput, and data gathering reliability degrades at the destination nodes. In addition, multi-hop data routing causes more data interference and reduced network lifetime due to non-uniform energy consumption across the network. Moreover, in an IoT network, faulty nodes further reduce the performance of data collection and network lifetime. In order to address the aforementioned challenges, various fault detection and fault tolerant-data routing methods have been proposed in the literature. However, predicting the faulty nodes a prior can result in improved network lifetime and QoS. Hence, in this work, a novel joint node fault prediction based optimal data routing method is proposed in an IoT network. The method utilizes a novel unsupervised learning based Local Outlier Factor (LOF) method for predicting forthcoming faults. The method classifies the faulty state of a sensor node as an outlier when plotted with normal state of the sensor node. Subsequently, a novel data routing method is proposed which utilizes Q-learning framework towards multi-hop data routing. Here, the Q-values decide the optimal routing path, where, data transmission path is altered based on predictions made on the faulty nodes. The performance of the proposed methods is evaluated over both, simulated IoT testbed and real-field dataset. The obtained results demonstrate that the proposed methods are able to successfully predict the faulty nodes and avoid data transmission through them, resulting in improved energy-efficiency and QoS over the network.