Объясните что такое Node.js и как он(-а, -о) работает?
У вас весь сыр в один вареник. Начните с простого, почитайте что такое интерпретатор. Node - это интерпретатор, для языка js.
Сервер, запросы, клиенты и т.д. - это про взаимодействие по сети, почитайте про HTTP и как он работает.

Из способности управлять ОС
Не сущетвует "способностей", есть системные вызовы ОС, почитайте что это.

может использоваться и для программирования разных устройств, гаджетов(фитнес браслеты, телефоны итд).
Оно то можно, только на гаджетах довольно мало ресурсов.

Связь с сайтом осуществояется через NPM и NPX. 
Опять же почитайте про HTTP.

NPM - это пакетный менеджер, его главная задача - это скачать из вне код который будет использоваться у вас.
Node.js это платформа, соединяющая в себе несколько технологий.
Выполнение с использованием движка хромиум V8.
Обработка цикла событий реализована с помощью LibUV.
Стандартные библиотеки node.js реализованы на СИ и обеспечивают взаимодействие с операционной системой, файловой системой, сетью, вводом выводом и тп.

NPM пакетный менеджер (по сути репозиторий внешних модулей для js), поставляется так же с пакетом Node.js и предоставляет возможность использовать модули, там опубликованные другими авторами.

Node.js - это однопоточная асинхонная среда исполнения, перед началом программирования на js желательно плотно почитать документацию по самому js, далее документацию по nodejs https://nodejs.org/

Node.js на первый взгляд выглядит быстрым входом в написание серверного кода или серверных исполняемых скриптов, однако, эта доступность является достаточно сильным минусом, потому что позволяет тем, кто не удосужился изучить ее поглубже творить архитектурных инвалидов, что рано или поздно приводит к тому, что такие проекты выглядят плохо.

Отдельно, про программирование под устройства, node.js не компилирует свой код, а потому на любом устройстве у тебя будет набор твоих файлов плюс все пакеты из node_modules, которые ты наустанавливаешь. Естественно у тебя на любом устройстве должен быть уже node.js или должна быть возможность туда его установить.

Из явных плюсов, писать бек и фронт на одном языке, достаточно зрелое комьюнити и много пакетов, доступных в npm, для решения многих задач.

Из явных минусов, из-за недостаточного знания js и понимания работы цикла событий люди очень часто пишут ужасный код, который получается очень сложным.