fix: check if 'All Item Group' exists before settings it as parent_item_group (#18956)

* fix: check if 'All Item Group' exists before settings it as parent_item_group

* feat: get cached value to avoid db call on each insert
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index bb357d8..b309b50 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -4,6 +4,7 @@
 from __future__ import unicode_literals
 import frappe
 import copy
+from frappe import _
 from frappe.utils import nowdate, cint, cstr
 from frappe.utils.nestedset import NestedSet
 from frappe.website.website_generator import WebsiteGenerator
@@ -28,7 +29,8 @@
 		super(ItemGroup, self).validate()
 
 		if not self.parent_item_group and not frappe.flags.in_test:
-			self.parent_item_group = 'All Item Groups'
+			if frappe.db.exists("Item Group", _('All Item Groups'), cache=True):
+				self.parent_item_group = _('All Item Groups')
 
 		self.make_route()