JSFiddle - React, Tailwind, and code Playground

JavaScript

const allCategories = [
    {
        "id": "3RvTc12p4TiolAaSrzEz",
        "data": {
            "parentID": null,
            "forUse": false,
            "name": "Decor",
            "childrenID": []
        }
    },
    {
        "id": "FdRQpC4QWgswwT9FCyMm",
        "data": {
            "childrenID": [],
            "parentID": "xjvhLdXSqpGz1SScgE6F",
            "name": "Jeans",
            "forUse": true
        }
    },
    {
        "id": "P5Kl0ePlcmghCf20HNCI",
        "data": {
            "parentID": null,
            "childrenID": [],
            "forUse": false,
            "name": "Kids"
        }
    },
    {
        "id": "phYvPrBXFmXxz5uIbhQb",
        "data": {
            "name": "Jeans",
            "forUse": true,
            "parentID": "xjvhLdXSqpGz1SScgE6F",
            "childrenID": []
        }
    },
    {
        "id": "xjvhLdXSqpGz1SScgE6F",
        "data": {
            "parentID": null,
            "childrenID": [
                "FdRQpC4QWgswwT9FCyMm",
                "phYvPrBXFmXxz5uIbhQb"
            ],
            "forUse": false,
            "configurationID": "FWlMKfaFZFOsJuWOd1eY",
            "name": "Clothes"
        }
    }
];

const tree = [];
    
    allCategories.forEach(function (a) {
        if (!this[a.id]) {
            this[a.id] = { id: a.id };
            tree.push(this[a.id]);
        }
        this[a.id].data = a.data;
        this[a.id].data.childrenID = a.data.childrenID.map(function (b) {
            this[b] = this[b] || { id: b };
            return this[b];
        }, this);
    }, Object.create(null));

document.write('<pre>' + JSON.stringify(tree, 0, 4) + '</pre>');