Heat 1 1/2 tablespoons olive oil in a pot over medium heat.
Add the garlic and half of the scallions and cook, stirring, 2 minutes. Increase the heat to medium high; strain the pureed tomatoes through a mesh sieve into the pot. Stir in the chopped tomatoes, 1 cup water, the cream, 1/2 teaspoon salt and 1/4 teaspoon pepper. Bring to a simmer and cook until thickened, about 5 minutes.
Add the pasta and cook until tender, about 10 minutes; season with salt and pepper. Toss the remaining scallions with the cheeses; divide half the mixture between 2 bread slices. Top each with a slice of ham, the remaining cheese mixture and the other 2 bread slices.
Heat the remaining 1/2 tablespoon olive oil in a nonstick skillet over medium-low heat. Cook the sandwiches until the cheese melts, 3 minutes per side; cut in half. Ladle the soup into bowls; top with basil and serve with the sandwiches.