Ok, so my problem is that after the "....ContinueWith(task => ..." ' j
  ' will become directly equal to the count variable. Why this happens
  and how to solve it?
That's because you used <= instead of <. With <=, j must be equals to count for the loop condition to be met and finish. If you want j to be less than count then use count-1 or simply use <.
So, that should be
for (int j = 1; i <= count-1; j++)
Or
for (int j = 1; i < count; j++)
Note that array  starts from 0 not 1 so int j = 1; should be int j = 0; but I have a feeling that's what you wanted to do and you are starting the loop from 1 on purpose.
Finally, another problem is your variable being captured in a loop because you are using lambda in the ContinueWith function. See this post for more information. To use the j variable inside the ContinueWith lambda function, make a copy of it then use that copy instead of the j variable.
db.Child("Some Child").GetValueAsync().ContinueWith(task =>
{
    //MAKE A COPY OF IT
    int jCopy = j;
    Debug.Log("j: " + jCopy); // Here the Debug will show me that j = count 
}
Complete fixed code:
for (int j = 1; i < count; j++)
{
    db.Child("Some Child").GetValueAsync().ContinueWith(task =>
    {
        //MAKE A COPY OF IT
        int jCopy = j;
        Debug.Log("j: " + jCopy);
        if (task.IsFaulted)
        {
            // ERROR HANDLER
        }
        else if (task.IsCompleted)
        {
            // Some Code Here
        }
    });
}