Anyway to answer the OP directly @Sabir - queue_free() will purge the node and all of its children from memory as soon as the current frame processing is finished. free() will do it immediately. In fact queue_free() is just a deferred call to free(). And that call will vanish the object from ram 100% guaranteed. After that, all references to the node still held in your code will become invalid and using them will throw an exception.
If you think something is not getting deleted while it should, use Godot's profiler to check if there are indeed some leaks. But you can rest assured that any leaks you may have are not caused by queue_free() somehow refusing to delete the nodes.