diff --git a/rdflib/plugins/sparql/aggregates.py b/rdflib/plugins/sparql/aggregates.py
index d4a7d659..84ac8936 100644
--- a/rdflib/plugins/sparql/aggregates.py
+++ b/rdflib/plugins/sparql/aggregates.py
@@ -245,11 +245,16 @@ class Sample(Accumulator):
 
 
 class GroupConcat(Accumulator):
-    def __init__(self, aggregation):
+    value: List[Literal]
+
+    def __init__(self, aggregation: CompValue):
         super(GroupConcat, self).__init__(aggregation)
         # only GROUPCONCAT needs to have a list as accumulator
         self.value = []
-        self.separator = aggregation.separator or " "
+        if aggregation.separator is None:
+            self.separator = " "
+        else:
+            self.separator = aggregation.separator
 
     def update(self, row: FrozenBindings, aggregator: "Aggregator") -> None:
         try:

diff --git a/test/test_sparql/test_translate_algebra.py b/test/test_sparql/test_translate_algebra.py
index 20b23327..ca9e67bd 100644
--- a/test/test_sparql/test_translate_algebra.py
+++ b/test/test_sparql/test_translate_algebra.py
@@ -11,6 +11,7 @@ from _pytest.mark.structures import Mark, MarkDecorator, ParameterSet
 
 import rdflib.plugins.sparql.algebra as algebra
 import rdflib.plugins.sparql.parser as parser
+from rdflib import Graph, Literal, URIRef
 from rdflib.plugins.sparql.algebra import translateAlgebra
 
 
@@ -304,3 +305,25 @@ def test_roundtrip(test_spec: AlgebraTest, data_path: Path) -> None:
     # TODO: Execute the raw query (query_text) and the reconstituted query
     # (query_from_query_from_algebra) against a well defined graph and ensure
     # they yield the same result.
+
+
+def test_sparql_group_concat():
+    """Tests if GROUP_CONCAT correctly uses the separator keyword"""
+    query = """
+    PREFIX : <http://example.org/>
+
+    SELECT ?subject (GROUP_CONCAT(?object; separator="")
+                        AS ?concatenatedObjects)
+    WHERE {
+      VALUES (?subject ?object) {
+        (:pred "a")
+        (:pred "b")
+        (:pred "c")
+      }
+    }
+    GROUP BY ?subject
+    """
+
+    g = Graph()
+    q = dict(g.query(query))
+    assert q[URIRef("http://example.org/pred")] == Literal("abc")

Separator in group_concat function with explicit empty string incorrectly defaults to 'space' character
Using the group_concat function with the separator indicating an _empty string_ ("") leads incorrectly to the default use of a space character as separator (" ").

**Example code:**



```
PREFIX : <http://example.org/>

SELECT ?subject (GROUP_CONCAT(?object; separator="") AS ?concatenatedObjects)
WHERE {
  VALUES (?subject ?object) {
    (:subject1 "a")
    (:subject1 "b")
    (:subject1 "c")
  }
}
GROUP BY ?subject
```

**Expected outcome for concatenatedObjects:**

`abc`

**Instead we get:**

`a b c`
test/test_sparql/test_translate_algebra.py::test_sparql_group_concat
test/test_sparql/test_translate_algebra.py::test_all_files_used test/test_sparql/test_translate_algebra.py::test_roundtrip[test_functions__functional_forms] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_functions__functional_forms_not_exists] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_functions__functions_on_dates_and_time] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_functions__functions_on_numerics] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_functions__functions_on_rdf_terms] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_functions__functions_on_strings] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_functions__hash_functions] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__aggregate_join] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__bgp] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__extend] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__filter] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__graph] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__group] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__group_and_substr] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__group_and_nested_concat] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__having] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__join] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__left_join] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__minus] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_graph_patterns__union] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_integration__complex_query1] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_operators__arithmetics] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_operators__conditional_and] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_operators__conditional_or] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_operators__relational] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_operators__unary] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_other__service2] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_other__values] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_property_path__alternative_path] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_property_path__inverse_path] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_property_path__one_or_more_path] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_property_path__sequence_path] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_property_path__zero_or_more_path] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_property_path__zero_or_one_path] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_solution_modifiers__distinct] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_solution_modifiers__order_by] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_solution_modifiers__reduced] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_solution_modifiers__slice] test/test_sparql/test_translate_algebra.py::test_roundtrip[test_solution_modifiers__to_multiset]