### Godot version

3b086aa06

### System information

ArchLinux x11

### Issue description

```gdscript
extends Node

@export_group("My Properties")
@export var number = 3
@export var string = ""

@export_group("Prefixed Properties", "prefix_")
@export var prefix_number = 3
@export var prefix_string = ""

@export_group("", "")
@export var ungrouped_number = 3
```

![image](https://user-images.githubusercontent.com/70787919/214983963-528c415b-745b-47fc-9777-36ebe31a3060.png)


### Steps to reproduce

- create script
- @export_group
- go inspector

### Minimal reproduction project

‮
for (int i = 0; i < p_dictionary->elements.size(); i++) {
		const GDScriptParser::DictionaryNode::Pair &element = p_dictionary->elements[i];
		if (element.value->type == GDScriptParser::Node::ARRAY) {
			const_fold_array(static_cast<GDScriptParser::ArrayNode *>(element.value), p_is_const);
		} else if (element.value->type == GDScriptParser::Node::DICTIONARY) {
			const_fold_dictionary(static_cast<GDScriptParser::DictionaryNode *>(element.value), p_is_const);
		}
		if (!element.key->is_constant || !element.value->is_constant) {
			return;
		}
	}
	Dictionary dict;
	for (int i = 0; i < p_dictionary->elements.size(); i++) {
		const GDScriptParser::DictionaryNode::Pair &element = p_dictionary->elements[i];
		dict[element.key->reduced_value] = element.value->reduced_value;
	}
	if (p_is_const) {
		dict.make_read_only();
	}
	p_dictionary->is_constant = true;
	p_dictionary->reduced_value = dict;
}
GDScriptParser::DataType GDScriptAnalyzer::type_from_variant(const Variant &p_value, const GDScriptParser::Node *p_source) {
	GDScriptParser::DataType result;
	result.is_constant = true;
	result.kind = GDScriptParser::DataType::BUILTIN;
	result.builtin_type = p_value.get_type();
	result.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT; 
	if (p_value.get_type() == Variant::OBJECT) {